#pragma once 

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief 人机界面初始化
 */
void hmi_init(void);

/**
 * @brief 蜂鸣器动作
 * 
 * @param t_on  蜂鸣器发声时间（ms）
 * @param t_off 蜂鸣器不发声时间（ms）
 * @param n     重复次数
 */
void hmi_beep(uint32_t t_on, uint32_t t_off, uint8_t n);

/**
 * @brief 蜂鸣器常开
 */
void hmi_beep_on(void);

/**
 * @brief 蜂鸣器常关
 */
void hmi_beep_off(void);

/**
 * @brief 语音播报
 * 
 * @param text  要播报的中文文本
 * @param len   要播报的中文文本长度(byte)
 * @param code  字符编码
 * 
 * @return int  操作状态
 * @retval 0    操作成功
 * @retval 1    设备忙
 */
int hmi_tts_speak(const char text[], int len, int code);


/**
 * @brief 设置指示灯颜色
 * 
 * @param num   指示灯编号
 * @param rgb   颜色(RGB888)
 */
void led_set(uint8_t num, char* string,uint32_t t_on);


//TODO 重构并删除
/*
 * 功能：控制指示灯亮灭
 * @param string:RGB888格式的颜色值
 * */
void led_set_rgb(char* string);
/*
 * 功能：led硬件初始化
 * */
void led_set_rgb_int(void);


/**
 * @brief 初始化TTS
 */
void tts_init(void);

/**
 * @brief 语音播报
 *
 * @param cn_text 要播报的中文文本
 * @param len 要播报的中文文本长度(byte)
 */
void tts_speak(char cn_text[], int len);

#ifdef __cplusplus
}
#endif
